package com.sam.designpattern.singleton;

/**
 * @Author: Sam
 * @Date: 2022-07-22 15:45
 * @Description: 单例模式-内部类创建 线程安全
 */
public class InnerSingleton {

    /**
     * 类级的内部类，也就是静态的成员式内部类，该内部类的实例与外部类的实例没有绑定关系，
     * 而且只有被调用时才会装载，从而实现了延迟加载
     */
    private static class InnerSingletonHolder {
        //静态初始化器，由JVM来保证线程安全
        private static InnerSingleton instance = new InnerSingleton();
    }

    //私有化构造方法
    private InnerSingleton() {
    }

    public static InnerSingleton getInstance() {
        //直接返回实例
        return InnerSingletonHolder.instance;
    }
}
